package marchsoft.modules.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import marchsoft.base.IBasicService;
import marchsoft.modules.system.entity.DictTYpe;
import marchsoft.modules.system.entity.DictValue;
import marchsoft.response.Result;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface IDictService extends IBasicService<DictValue> {

    /*
     * 通过id查询字典主表
     *
     * @Description 通过id查询字典主表
     * @Param id
     * @Return marchsoft.modules.system.entity.DictTYpe
     * @Author hxw
     * @Date 2024-07-17 10:37
     **/
    DictTYpe findById(Long id);

    /*
     * 查询字典主表
     *
     * @Description 查询字典主表
     * @Param typeName 字典名称
     * @Param page 分页
     * @Return marchsoft.response.Result<java.lang.Object>
     * @Author hxw
     * @Date 2024-07-17 10:37
     **/
    Result<Object> findByAllDictType(String typeName, Page page);

    /*
     * 查询字典子表
     *
     * @Description 查询字典子表
     * @Param typeId 字典主表id
     * @Param page 分页
     * @Return marchsoft.response.Result<java.lang.Object>
     * @Author hxw
     * @Date 2024-07-17 10:37
     **/
    Result<Object> findByTypeId(Long typeId,Page page);

    /*
     * 修改字典主表
     *
     * @Description 修改字典主表
     * @Param dictTYpe 字典主表
     * @Return marchsoft.response.Result<java.lang.Object>
     * @Author hxw
     * @Date 2024-07-17 10:37
     **/
    Result<Object> updateDictType(DictTYpe dictTYpe);

    /*
     * 修改字典子表
     *
     * @Description 修改字典子表
     * @Param dictValue 字典子表
     * @Return marchsoft.response.Result<java.lang.Object>
     * @Author hxw
     * @Date 2024-07-17 10:37
     **/
    Result<Object> updateDictValue(DictValue dictValue);

    /*
     * 删除字典主表
     *
     * @Description 删除字典主表
     * @Param ids 字典主表id
     * @Return marchsoft.response.Result<java.lang.Object>
     * @Author hxw
     * @Date 2024-07-17 10:37
     **/
    Result<Object> deleteDictType(Set<Long> ids);

    /*
     * 删除字典子表
     *
     * @Description 删除字典子表
     * @Param ids 字典子表id
     * @Return marchsoft.response.Result<java.lang.Object>
     * @Author hxw
     * @Date 2024-07-17 10:37
     **/
    Result<Object> deleteDictValue(Set<Long> ids);

    /*
     * 新增字典主表
     *
     * @Description 新增字典主表
     * @Param dictTYpe 字典主表
     * @Return marchsoft.response.Result<java.lang.Object>
     * @Author hxw
     * @Date 2024-07-17 10:37
     **/
    Result<Object> createDictType(DictTYpe dictTYpe);

    /*
     * 新增字典子表
     *
     * @Description 新增字典子表
     * @Param dictValue 字典子表
     * @Return marchsoft.response.Result<java.lang.Object>
     * @Author hxw
     * @Date 2024-07-17 10:37
     **/
    Result<Object> createDictValue(DictValue dictValue);
}
